package com.yxx.strategy;

import org.springframework.web.multipart.MultipartFile;

/**
 *
 * 上传策略接口，实现相同的接口，定义上传文件的行为 uploadFile 方法
 * 文件上传的策略模式的实现，核心思想是根据不同的文件上传策略（本地、OSS、QINIU、COS）动态的选择具体的上传方式。
 * 主要用到的设计模式是策略模式，并结合工厂模式和依赖注入
 * 策略模式的核心思想是定义一系列算法（上传策略），然后通过上下文类（UploadStrategyContext）来动态地选择一个算法（策略）来执行。
 * @author yuxiangxun
 * @date 2025/1/26
 * @apiNote
 */
public interface UploadStrategy {

    /**
     * 上传文件
     * @param file 文件
     * @param path 上传路径
     * @return 文件地址
     */
    String uploadFile(MultipartFile file, String path);
}
